<term>layout</term>
<listitem><para>Show layout borders</para></listitem>
</varlistentry>
+ <varlistentry>
+ <term>snapshot</term>
+ <listitem><para>Include debug render nodes in the generated snapshots</para></listitem>
+ </varlistentry>
</variablelist>
The special value <literal>all</literal> can be used to turn on all
debug options. The special value <literal>help</literal> can be used
GTK_DEBUG_TOUCHSCREEN = 1 << 15,
GTK_DEBUG_ACTIONS = 1 << 16,
GTK_DEBUG_RESIZE = 1 << 17,
- GTK_DEBUG_LAYOUT = 1 << 18
+ GTK_DEBUG_LAYOUT = 1 << 18,
+ GTK_DEBUG_SNAPSHOT = 1 << 19
} GtkDebugFlag;
#ifdef G_ENABLE_DEBUG
{ "touchscreen", GTK_DEBUG_TOUCHSCREEN },
{ "actions", GTK_DEBUG_ACTIONS },
{ "resize", GTK_DEBUG_RESIZE },
- { "layout", GTK_DEBUG_LAYOUT }
+ { "layout", GTK_DEBUG_LAYOUT },
+ { "snapshot", GTK_DEBUG_SNAPSHOT }
};
#endif /* G_ENABLE_DEBUG */
*/
mode = get_render_mode (klass);
+ if (GTK_DEBUG_CHECK (SNAPSHOT))
+ gtk_snapshot_push (snapshot, TRUE, "%s<%p>", gtk_widget_get_name (widget), widget);
+
if (mode == RENDER_DRAW)
{
cairo_t *cr;
if (opacity < 1.0)
gtk_snapshot_pop_and_append (snapshot);
}
+
+ if (GTK_DEBUG_CHECK (SNAPSHOT))
+ gtk_snapshot_pop_and_append (snapshot);
}
void
redraw_everything ();
}
+static void
+snapshot_activate (GtkSwitch *sw)
+{
+ guint flags;
+
+ flags = gtk_get_debug_flags ();
+
+ if (gtk_switch_get_active (sw))
+ flags |= GTK_DEBUG_SNAPSHOT;
+ else
+ flags &= ~GTK_DEBUG_SNAPSHOT;
+
+ gtk_set_debug_flags (flags);
+}
+
static void
widget_resize_activate (GtkSwitch *sw)
{
gtk_widget_class_bind_template_callback (widget_class, rendering_mode_changed);
gtk_widget_class_bind_template_callback (widget_class, baselines_activate);
gtk_widget_class_bind_template_callback (widget_class, layout_activate);
+ gtk_widget_class_bind_template_callback (widget_class, snapshot_activate);
gtk_widget_class_bind_template_callback (widget_class, widget_resize_activate);
gtk_widget_class_bind_template_callback (widget_class, software_gl_activate);
gtk_widget_class_bind_template_callback (widget_class, software_surface_activate);
</child>
</object>
</child>
+ <child>
+ <object class="GtkListBoxRow">
+ <property name="visible">True</property>
+ <property name="activatable">False</property>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="orientation">horizontal</property>
+ <property name="margin">10</property>
+ <property name="spacing">40</property>
+ <child>
+ <object class="GtkLabel" id="snapshot_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Snapshot Debug Nodes</property>
+ <property name="halign">start</property>
+ <property name="valign">baseline</property>
+ <property name="xalign">0.0</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkSwitch" id="snapshot_switch">
+ <property name="visible">True</property>
+ <property name="halign">end</property>
+ <property name="valign">baseline</property>
+ <signal name="notify::active" handler="snapshot_activate"/>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
<child>
<object class="GtkListBoxRow">
<property name="visible">True</property>
<widget name="updates_label"/>
<widget name="baselines_label"/>
<widget name="layout_label"/>
+ <widget name="snapshot_label"/>
<widget name="touchscreen_label"/>
<widget name="gl_label"/>
<widget name="software_gl_label"/>